﻿// $ANTLR 3.1.2 /Users/marcel/FixtureVS.g 2009-04-06 15:59:34

// The variable 'variable' is assigned but its value is never used.
#pragma warning disable 168, 219
// Unreachable code detected.
#pragma warning disable 162

using System;
using Antlr.Runtime;
using IList = System.Collections.IList;
using ArrayList = System.Collections.ArrayList;
using Stack = Antlr.Runtime.Collections.StackList;

using IDictionary = System.Collections.IDictionary;
using Hashtable = System.Collections.Hashtable;

public partial class FixtureVSLexer : Lexer
{
    public const int COMMA = 6;
    public const int LETTER = 22;
    public const int MINUS = 30;
    public const int PERCENT = 20;
    public const int IDENT = 7;
    public const int HASH = 19;
    public const int STRING = 13;
    public const int COMMENT = 27;
    public const int DOLLAR = 21;
    public const int LBRACKET = 10;
    public const int DECIMAL = 17;
    public const int WHITESPACE = 25;
    public const int LBRACE = 4;
    public const int NEWLINE = 26;
    public const int RBRACE = 5;
    public const int INTEGER = 15;
    public const int EQUAL = 9;
    public const int ESCAPE_CHAR = 33;
    public const int EOF = -1;
    public const int DATE = 18;
    public const int REFERENCE = 12;
    public const int RBRACKET = 11;
    public const int SYMBOL = 23;
    public const int HEX_VALUE = 16;
    public const int COLON = 8;
    public const int END_BLOCK_COMMENT = 28;
    public const int HEX_PREFIX = 31;
    public const int DIGIT = 24;
    public const int ANYCHAR = 32;
    public const int STRING2 = 14;
    public const int AT = 29;

    // delegates
    // delegators

    public FixtureVSLexer()
    {
        InitializeCyclicDFAs();
    }
    public FixtureVSLexer(ICharStream input)
        : this(input, null)
    {
    }
    public FixtureVSLexer(ICharStream input, RecognizerSharedState state)
        : base(input, state)
    {
        InitializeCyclicDFAs();

    }

    override public string GrammarFileName
    {
        get { return "/Users/marcel/FixtureVS.g"; }
    }


    private bool _inBlockComment = false;
    private bool _inBlockString = false;

    public bool InBlockComment
    {
        get
        {
            return _inBlockComment;
        }
        set
        {
            if (!InBlockString || !value)
                _inBlockComment = value;
        }
    }

    public bool InBlockString
    {
        get
        {
            return _inBlockString;
        }
        set
        {
            if (!InBlockComment || !value)
                _inBlockString = value;
        }
    }

    public override IToken NextToken()
    {
        IToken next = base.NextToken();

        if (next.Type != EOF && InBlockComment && next.Type != COMMENT)
        {
            if (next.Type == END_BLOCK_COMMENT)
                InBlockComment = false;

            next.Type = COMMENT;
        }
        else if (next.Type != EOF && InBlockString && next.Type != STRING2)
        {
            char previousChar = (char)this.CharStream.LA(-2);

            if (next.Type == RBRACE && previousChar != '\\')
                InBlockString = false;

            next.Type = STRING2;
        }

        return next;
    }

    // $ANTLR start "REFERENCE"
    public void mREFERENCE() // throws RecognitionException [2]
    {
        try
        {
            int _type = REFERENCE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:76:2: ( DOLLAR ( LETTER | SYMBOL ) ( LETTER | DIGIT | SYMBOL )* )
            // /Users/marcel/FixtureVS.g:76:4: DOLLAR ( LETTER | SYMBOL ) ( LETTER | DIGIT | SYMBOL )*
            {
                mDOLLAR(); if (state.failed) return;
                if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z'))
                {
                    input.Consume();
                    state.failed = false;
                }
                else
                {
                    if (state.backtracking > 0) { state.failed = true; return; }
                    MismatchedSetException mse = new MismatchedSetException(null, input);
                    Recover(mse);
                    throw mse;
                }

                // /Users/marcel/FixtureVS.g:76:29: ( LETTER | DIGIT | SYMBOL )*
                do
                {
                    int alt1 = 2;
                    int LA1_0 = input.LA(1);

                    if (((LA1_0 >= '0' && LA1_0 <= '9') || (LA1_0 >= 'A' && LA1_0 <= 'Z') || LA1_0 == '_' || (LA1_0 >= 'a' && LA1_0 <= 'z')))
                    {
                        alt1 = 1;
                    }


                    switch (alt1)
                    {
                        case 1:
                            // /Users/marcel/FixtureVS.g:
                            {
                                if ((input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z'))
                                {
                                    input.Consume();
                                    state.failed = false;
                                }
                                else
                                {
                                    if (state.backtracking > 0) { state.failed = true; return; }
                                    MismatchedSetException mse = new MismatchedSetException(null, input);
                                    Recover(mse);
                                    throw mse;
                                }


                            }
                            break;

                        default:
                            goto loop1;
                    }
                } while (true);

            loop1:
                ;	// Stops C# compiler whining that label 'loop1' has no statements


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "REFERENCE"

    // $ANTLR start "IDENT"
    public void mIDENT() // throws RecognitionException [2]
    {
        try
        {
            int _type = IDENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:78:7: ( ( LETTER | SYMBOL ) ( LETTER | DIGIT | SYMBOL )* )
            // /Users/marcel/FixtureVS.g:78:9: ( LETTER | SYMBOL ) ( LETTER | DIGIT | SYMBOL )*
            {
                if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z'))
                {
                    input.Consume();
                    state.failed = false;
                }
                else
                {
                    if (state.backtracking > 0) { state.failed = true; return; }
                    MismatchedSetException mse = new MismatchedSetException(null, input);
                    Recover(mse);
                    throw mse;
                }

                // /Users/marcel/FixtureVS.g:78:27: ( LETTER | DIGIT | SYMBOL )*
                do
                {
                    int alt2 = 2;
                    int LA2_0 = input.LA(1);

                    if (((LA2_0 >= '0' && LA2_0 <= '9') || (LA2_0 >= 'A' && LA2_0 <= 'Z') || LA2_0 == '_' || (LA2_0 >= 'a' && LA2_0 <= 'z')))
                    {
                        alt2 = 1;
                    }


                    switch (alt2)
                    {
                        case 1:
                            // /Users/marcel/FixtureVS.g:
                            {
                                if ((input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z'))
                                {
                                    input.Consume();
                                    state.failed = false;
                                }
                                else
                                {
                                    if (state.backtracking > 0) { state.failed = true; return; }
                                    MismatchedSetException mse = new MismatchedSetException(null, input);
                                    Recover(mse);
                                    throw mse;
                                }


                            }
                            break;

                        default:
                            goto loop2;
                    }
                } while (true);

            loop2:
                ;	// Stops C# compiler whining that label 'loop2' has no statements


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "IDENT"

    // $ANTLR start "WHITESPACE"
    public void mWHITESPACE() // throws RecognitionException [2]
    {
        try
        {
            int _type = WHITESPACE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:80:12: ( ( '\\t' | ' ' | '\\u000C' )+ )
            // /Users/marcel/FixtureVS.g:80:15: ( '\\t' | ' ' | '\\u000C' )+
            {
                // /Users/marcel/FixtureVS.g:80:15: ( '\\t' | ' ' | '\\u000C' )+
                int cnt3 = 0;
                do
                {
                    int alt3 = 2;
                    int LA3_0 = input.LA(1);

                    if ((LA3_0 == '\t' || LA3_0 == '\f' || LA3_0 == ' '))
                    {
                        alt3 = 1;
                    }


                    switch (alt3)
                    {
                        case 1:
                            // /Users/marcel/FixtureVS.g:
                            {
                                if (input.LA(1) == '\t' || input.LA(1) == '\f' || input.LA(1) == ' ')
                                {
                                    input.Consume();
                                    state.failed = false;
                                }
                                else
                                {
                                    if (state.backtracking > 0) { state.failed = true; return; }
                                    MismatchedSetException mse = new MismatchedSetException(null, input);
                                    Recover(mse);
                                    throw mse;
                                }


                            }
                            break;

                        default:
                            if (cnt3 >= 1) goto loop3;
                            if (state.backtracking > 0) { state.failed = true; return; }
                            EarlyExitException eee3 =
                                new EarlyExitException(3, input);
                            throw eee3;
                    }
                    cnt3++;
                } while (true);

            loop3:
                ;	// Stops C# compiler whinging that label 'loop3' has no statements

                if ((state.backtracking == 0))
                {
                    _channel = HIDDEN;
                }

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "WHITESPACE"

    // $ANTLR start "NEWLINE"
    public void mNEWLINE() // throws RecognitionException [2]
    {
        try
        {
            int _type = NEWLINE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:82:9: ( ( '\\r' )? '\\n' )
            // /Users/marcel/FixtureVS.g:83:2: ( '\\r' )? '\\n'
            {
                // /Users/marcel/FixtureVS.g:83:2: ( '\\r' )?
                int alt4 = 2;
                int LA4_0 = input.LA(1);

                if ((LA4_0 == '\r'))
                {
                    alt4 = 1;
                }
                switch (alt4)
                {
                    case 1:
                        // /Users/marcel/FixtureVS.g:83:2: '\\r'
                        {
                            Match('\r'); if (state.failed) return;

                        }
                        break;

                }

                Match('\n'); if (state.failed) return;
                if ((state.backtracking == 0))
                {
                    _channel = HIDDEN;
                }

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "NEWLINE"

    // $ANTLR start "COMMENT"
    public void mCOMMENT() // throws RecognitionException [2]
    {
        try
        {
            int _type = COMMENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:87:9: ( '/*' (~ ( '*' ) | ( '*' ~ '/' )=> '*' )* ( '*/' )? )
            // /Users/marcel/FixtureVS.g:87:11: '/*' (~ ( '*' ) | ( '*' ~ '/' )=> '*' )* ( '*/' )?
            {
                Match("/*"); if (state.failed) return;

                if ((state.backtracking == 0))
                {
                    InBlockComment = true;
                }
                // /Users/marcel/FixtureVS.g:88:2: (~ ( '*' ) | ( '*' ~ '/' )=> '*' )*
                do
                {
                    int alt5 = 3;
                    int LA5_0 = input.LA(1);

                    if ((LA5_0 == '*'))
                    {
                        int LA5_1 = input.LA(2);

                        if ((LA5_1 == '/'))
                        {
                            int LA5_4 = input.LA(3);

                            if ((synpred1_FixtureVS()))
                            {
                                alt5 = 2;
                            }


                        }
                        else if ((LA5_1 == '*') && (synpred1_FixtureVS()))
                        {
                            alt5 = 2;
                        }
                        else if (((LA5_1 >= '\u0000' && LA5_1 <= ')') || (LA5_1 >= '+' && LA5_1 <= '.') || (LA5_1 >= '0' && LA5_1 <= '\uFFFF')) && (synpred1_FixtureVS()))
                        {
                            alt5 = 2;
                        }

                        else
                        {
                            alt5 = 2;
                        }

                    }
                    else if (((LA5_0 >= '\u0000' && LA5_0 <= ')') || (LA5_0 >= '+' && LA5_0 <= '\uFFFF')))
                    {
                        alt5 = 1;
                    }


                    switch (alt5)
                    {
                        case 1:
                            // /Users/marcel/FixtureVS.g:89:3: ~ ( '*' )
                            {
                                if ((input.LA(1) >= '\u0000' && input.LA(1) <= ')') || (input.LA(1) >= '+' && input.LA(1) <= '\uFFFF'))
                                {
                                    input.Consume();
                                    state.failed = false;
                                }
                                else
                                {
                                    if (state.backtracking > 0) { state.failed = true; return; }
                                    MismatchedSetException mse = new MismatchedSetException(null, input);
                                    Recover(mse);
                                    throw mse;
                                }


                            }
                            break;
                        case 2:
                            // /Users/marcel/FixtureVS.g:90:7: ( '*' ~ '/' )=> '*'
                            {
                                Match('*'); if (state.failed) return;

                            }
                            break;

                        default:
                            goto loop5;
                    }
                } while (true);

            loop5:
                ;	// Stops C# compiler whining that label 'loop5' has no statements

                // /Users/marcel/FixtureVS.g:92:9: ( '*/' )?
                int alt6 = 2;
                int LA6_0 = input.LA(1);

                if ((LA6_0 == '*'))
                {
                    alt6 = 1;
                }
                switch (alt6)
                {
                    case 1:
                        // /Users/marcel/FixtureVS.g:93:10: '*/'
                        {
                            Match("*/"); if (state.failed) return;

                            if ((state.backtracking == 0))
                            {
                                InBlockComment = false;
                            }

                        }
                        break;

                }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "COMMENT"

    // $ANTLR start "END_BLOCK_COMMENT"
    public void mEND_BLOCK_COMMENT() // throws RecognitionException [2]
    {
        try
        {
            int _type = END_BLOCK_COMMENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:98:2: ( '*/' )
            // /Users/marcel/FixtureVS.g:98:5: '*/'
            {
                Match("*/"); if (state.failed) return;


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "END_BLOCK_COMMENT"

    // $ANTLR start "STRING"
    public void mSTRING() // throws RecognitionException [2]
    {
        try
        {
            int _type = STRING;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:100:8: ( '\"' (~ ( '\"' | '\\n' ) | ( '\\\\' ~ '\"' )=> '\\\\' | ( '\\\\' '\"' ) )* '\"' )
            // /Users/marcel/FixtureVS.g:100:11: '\"' (~ ( '\"' | '\\n' ) | ( '\\\\' ~ '\"' )=> '\\\\' | ( '\\\\' '\"' ) )* '\"'
            {
                Match('\"'); if (state.failed) return;
                // /Users/marcel/FixtureVS.g:101:3: (~ ( '\"' | '\\n' ) | ( '\\\\' ~ '\"' )=> '\\\\' | ( '\\\\' '\"' ) )*
                do
                {
                    int alt7 = 4;
                    int LA7_0 = input.LA(1);

                    if ((LA7_0 == '\\'))
                    {
                        int LA7_2 = input.LA(2);

                        if ((LA7_2 == '\"'))
                        {
                            alt7 = 3;
                        }
                        else if ((true))
                        {
                            alt7 = 1;
                        }
                        else if ((synpred2_FixtureVS()))
                        {
                            alt7 = 2;
                        }


                    }
                    else if (((LA7_0 >= '\u0000' && LA7_0 <= '\t') || (LA7_0 >= '\u000B' && LA7_0 <= '!') || (LA7_0 >= '#' && LA7_0 <= '[') || (LA7_0 >= ']' && LA7_0 <= '\uFFFF')))
                    {
                        alt7 = 1;
                    }


                    switch (alt7)
                    {
                        case 1:
                            // /Users/marcel/FixtureVS.g:102:4: ~ ( '\"' | '\\n' )
                            {
                                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '\t') || (input.LA(1) >= '\u000B' && input.LA(1) <= '!') || (input.LA(1) >= '#' && input.LA(1) <= '\uFFFF'))
                                {
                                    input.Consume();
                                    state.failed = false;
                                }
                                else
                                {
                                    if (state.backtracking > 0) { state.failed = true; return; }
                                    MismatchedSetException mse = new MismatchedSetException(null, input);
                                    Recover(mse);
                                    throw mse;
                                }


                            }
                            break;
                        case 2:
                            // /Users/marcel/FixtureVS.g:103:4: ( '\\\\' ~ '\"' )=> '\\\\'
                            {
                                Match('\\'); if (state.failed) return;

                            }
                            break;
                        case 3:
                            // /Users/marcel/FixtureVS.g:104:4: ( '\\\\' '\"' )
                            {
                                // /Users/marcel/FixtureVS.g:104:4: ( '\\\\' '\"' )
                                // /Users/marcel/FixtureVS.g:104:5: '\\\\' '\"'
                                {
                                    Match('\\'); if (state.failed) return;
                                    Match('\"'); if (state.failed) return;

                                }


                            }
                            break;

                        default:
                            goto loop7;
                    }
                } while (true);

            loop7:
                ;	// Stops C# compiler whining that label 'loop7' has no statements

                Match('\"'); if (state.failed) return;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "STRING"

    // $ANTLR start "STRING2"
    public void mSTRING2() // throws RecognitionException [2]
    {
        try
        {
            int _type = STRING2;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:108:9: ( AT LBRACE (~ ( '\\\\' | '}' ) | ( '\\\\' ~ '}' )=> '\\\\' | ( '\\\\' '}' ) )* ( RBRACE )? )
            // /Users/marcel/FixtureVS.g:109:2: AT LBRACE (~ ( '\\\\' | '}' ) | ( '\\\\' ~ '}' )=> '\\\\' | ( '\\\\' '}' ) )* ( RBRACE )?
            {
                mAT(); if (state.failed) return;
                mLBRACE(); if (state.failed) return;
                if ((state.backtracking == 0))
                {
                    InBlockString = true;
                }
                // /Users/marcel/FixtureVS.g:111:2: (~ ( '\\\\' | '}' ) | ( '\\\\' ~ '}' )=> '\\\\' | ( '\\\\' '}' ) )*
                do
                {
                    int alt8 = 4;
                    int LA8_0 = input.LA(1);

                    if (((LA8_0 >= '\u0000' && LA8_0 <= '[') || (LA8_0 >= ']' && LA8_0 <= '|') || (LA8_0 >= '~' && LA8_0 <= '\uFFFF')))
                    {
                        alt8 = 1;
                    }
                    else if ((LA8_0 == '\\'))
                    {
                        int LA8_3 = input.LA(2);

                        if ((LA8_3 == '}'))
                        {
                            int LA8_4 = input.LA(3);

                            if ((synpred3_FixtureVS()))
                            {
                                alt8 = 2;
                            }
                            else if ((true))
                            {
                                alt8 = 3;
                            }


                        }
                        else if (((LA8_3 >= '\u0000' && LA8_3 <= '[') || (LA8_3 >= ']' && LA8_3 <= '|') || (LA8_3 >= '~' && LA8_3 <= '\uFFFF')) && (synpred3_FixtureVS()))
                        {
                            alt8 = 2;
                        }
                        else if ((LA8_3 == '\\') && (synpred3_FixtureVS()))
                        {
                            alt8 = 2;
                        }

                        else
                        {
                            alt8 = 2;
                        }

                    }


                    switch (alt8)
                    {
                        case 1:
                            // /Users/marcel/FixtureVS.g:112:3: ~ ( '\\\\' | '}' )
                            {
                                if ((input.LA(1) >= '\u0000' && input.LA(1) <= '[') || (input.LA(1) >= ']' && input.LA(1) <= '|') || (input.LA(1) >= '~' && input.LA(1) <= '\uFFFF'))
                                {
                                    input.Consume();
                                    state.failed = false;
                                }
                                else
                                {
                                    if (state.backtracking > 0) { state.failed = true; return; }
                                    MismatchedSetException mse = new MismatchedSetException(null, input);
                                    Recover(mse);
                                    throw mse;
                                }


                            }
                            break;
                        case 2:
                            // /Users/marcel/FixtureVS.g:113:3: ( '\\\\' ~ '}' )=> '\\\\'
                            {
                                Match('\\'); if (state.failed) return;

                            }
                            break;
                        case 3:
                            // /Users/marcel/FixtureVS.g:114:3: ( '\\\\' '}' )
                            {
                                // /Users/marcel/FixtureVS.g:114:3: ( '\\\\' '}' )
                                // /Users/marcel/FixtureVS.g:114:4: '\\\\' '}'
                                {
                                    Match('\\'); if (state.failed) return;
                                    Match('}'); if (state.failed) return;

                                }


                            }
                            break;

                        default:
                            goto loop8;
                    }
                } while (true);

            loop8:
                ;	// Stops C# compiler whining that label 'loop8' has no statements

                // /Users/marcel/FixtureVS.g:117:2: ( RBRACE )?
                int alt9 = 2;
                int LA9_0 = input.LA(1);

                if ((LA9_0 == '}'))
                {
                    alt9 = 1;
                }
                switch (alt9)
                {
                    case 1:
                        // /Users/marcel/FixtureVS.g:118:3: RBRACE
                        {
                            mRBRACE(); if (state.failed) return;
                            if ((state.backtracking == 0))
                            {
                                InBlockString = false;
                            }

                        }
                        break;

                }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "STRING2"

    // $ANTLR start "INTEGER"
    public void mINTEGER() // throws RecognitionException [2]
    {
        try
        {
            int _type = INTEGER;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:121:9: ( ( MINUS )? ( DIGIT )* )
            // /Users/marcel/FixtureVS.g:121:11: ( MINUS )? ( DIGIT )*
            {
                // /Users/marcel/FixtureVS.g:121:11: ( MINUS )?
                int alt10 = 2;
                int LA10_0 = input.LA(1);

                if ((LA10_0 == '-'))
                {
                    alt10 = 1;
                }
                switch (alt10)
                {
                    case 1:
                        // /Users/marcel/FixtureVS.g:121:12: MINUS
                        {
                            mMINUS(); if (state.failed) return;

                        }
                        break;

                }

                // /Users/marcel/FixtureVS.g:121:20: ( DIGIT )*
                do
                {
                    int alt11 = 2;
                    int LA11_0 = input.LA(1);

                    if (((LA11_0 >= '0' && LA11_0 <= '9')))
                    {
                        alt11 = 1;
                    }


                    switch (alt11)
                    {
                        case 1:
                            // /Users/marcel/FixtureVS.g:121:20: DIGIT
                            {
                                mDIGIT(); if (state.failed) return;

                            }
                            break;

                        default:
                            goto loop11;
                    }
                } while (true);

            loop11:
                ;	// Stops C# compiler whining that label 'loop11' has no statements


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "INTEGER"

    // $ANTLR start "DECIMAL"
    public void mDECIMAL() // throws RecognitionException [2]
    {
        try
        {
            int _type = DECIMAL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:123:9: ( ( MINUS )? ( DIGIT )* '.' ( DIGIT )* )
            // /Users/marcel/FixtureVS.g:123:11: ( MINUS )? ( DIGIT )* '.' ( DIGIT )*
            {
                // /Users/marcel/FixtureVS.g:123:11: ( MINUS )?
                int alt12 = 2;
                int LA12_0 = input.LA(1);

                if ((LA12_0 == '-'))
                {
                    alt12 = 1;
                }
                switch (alt12)
                {
                    case 1:
                        // /Users/marcel/FixtureVS.g:123:12: MINUS
                        {
                            mMINUS(); if (state.failed) return;

                        }
                        break;

                }

                // /Users/marcel/FixtureVS.g:123:20: ( DIGIT )*
                do
                {
                    int alt13 = 2;
                    int LA13_0 = input.LA(1);

                    if (((LA13_0 >= '0' && LA13_0 <= '9')))
                    {
                        alt13 = 1;
                    }


                    switch (alt13)
                    {
                        case 1:
                            // /Users/marcel/FixtureVS.g:123:20: DIGIT
                            {
                                mDIGIT(); if (state.failed) return;

                            }
                            break;

                        default:
                            goto loop13;
                    }
                } while (true);

            loop13:
                ;	// Stops C# compiler whining that label 'loop13' has no statements

                Match('.'); if (state.failed) return;
                // /Users/marcel/FixtureVS.g:123:31: ( DIGIT )*
                do
                {
                    int alt14 = 2;
                    int LA14_0 = input.LA(1);

                    if (((LA14_0 >= '0' && LA14_0 <= '9')))
                    {
                        alt14 = 1;
                    }


                    switch (alt14)
                    {
                        case 1:
                            // /Users/marcel/FixtureVS.g:123:31: DIGIT
                            {
                                mDIGIT(); if (state.failed) return;

                            }
                            break;

                        default:
                            goto loop14;
                    }
                } while (true);

            loop14:
                ;	// Stops C# compiler whining that label 'loop14' has no statements


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "DECIMAL"

    // $ANTLR start "DATE"
    public void mDATE() // throws RecognitionException [2]
    {
        try
        {
            int _type = DATE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:125:6: ( DIGIT DIGIT DIGIT DIGIT '/' DIGIT DIGIT '/' DIGIT DIGIT ( ' ' DIGIT DIGIT COLON DIGIT DIGIT ( COLON DIGIT DIGIT )? ( 'AM' | 'PM' | 'am' | 'pm' )? )? )
            // /Users/marcel/FixtureVS.g:125:8: DIGIT DIGIT DIGIT DIGIT '/' DIGIT DIGIT '/' DIGIT DIGIT ( ' ' DIGIT DIGIT COLON DIGIT DIGIT ( COLON DIGIT DIGIT )? ( 'AM' | 'PM' | 'am' | 'pm' )? )?
            {
                mDIGIT(); if (state.failed) return;
                mDIGIT(); if (state.failed) return;
                mDIGIT(); if (state.failed) return;
                mDIGIT(); if (state.failed) return;
                Match('/'); if (state.failed) return;
                mDIGIT(); if (state.failed) return;
                mDIGIT(); if (state.failed) return;
                Match('/'); if (state.failed) return;
                mDIGIT(); if (state.failed) return;
                mDIGIT(); if (state.failed) return;
                // /Users/marcel/FixtureVS.g:125:64: ( ' ' DIGIT DIGIT COLON DIGIT DIGIT ( COLON DIGIT DIGIT )? ( 'AM' | 'PM' | 'am' | 'pm' )? )?
                int alt17 = 2;
                int LA17_0 = input.LA(1);

                if ((LA17_0 == ' '))
                {
                    alt17 = 1;
                }
                switch (alt17)
                {
                    case 1:
                        // /Users/marcel/FixtureVS.g:125:65: ' ' DIGIT DIGIT COLON DIGIT DIGIT ( COLON DIGIT DIGIT )? ( 'AM' | 'PM' | 'am' | 'pm' )?
                        {
                            Match(' '); if (state.failed) return;
                            mDIGIT(); if (state.failed) return;
                            mDIGIT(); if (state.failed) return;
                            mCOLON(); if (state.failed) return;
                            mDIGIT(); if (state.failed) return;
                            mDIGIT(); if (state.failed) return;
                            // /Users/marcel/FixtureVS.g:125:99: ( COLON DIGIT DIGIT )?
                            int alt15 = 2;
                            int LA15_0 = input.LA(1);

                            if ((LA15_0 == ':'))
                            {
                                alt15 = 1;
                            }
                            switch (alt15)
                            {
                                case 1:
                                    // /Users/marcel/FixtureVS.g:125:100: COLON DIGIT DIGIT
                                    {
                                        mCOLON(); if (state.failed) return;
                                        mDIGIT(); if (state.failed) return;
                                        mDIGIT(); if (state.failed) return;

                                    }
                                    break;

                            }

                            // /Users/marcel/FixtureVS.g:125:120: ( 'AM' | 'PM' | 'am' | 'pm' )?
                            int alt16 = 5;
                            switch (input.LA(1))
                            {
                                case 'A':
                                    {
                                        alt16 = 1;
                                    }
                                    break;
                                case 'P':
                                    {
                                        alt16 = 2;
                                    }
                                    break;
                                case 'a':
                                    {
                                        alt16 = 3;
                                    }
                                    break;
                                case 'p':
                                    {
                                        alt16 = 4;
                                    }
                                    break;
                            }

                            switch (alt16)
                            {
                                case 1:
                                    // /Users/marcel/FixtureVS.g:125:121: 'AM'
                                    {
                                        Match("AM"); if (state.failed) return;


                                    }
                                    break;
                                case 2:
                                    // /Users/marcel/FixtureVS.g:125:126: 'PM'
                                    {
                                        Match("PM"); if (state.failed) return;


                                    }
                                    break;
                                case 3:
                                    // /Users/marcel/FixtureVS.g:125:131: 'am'
                                    {
                                        Match("am"); if (state.failed) return;


                                    }
                                    break;
                                case 4:
                                    // /Users/marcel/FixtureVS.g:125:136: 'pm'
                                    {
                                        Match("pm"); if (state.failed) return;


                                    }
                                    break;

                            }


                        }
                        break;

                }


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "DATE"

    // $ANTLR start "AT"
    public void mAT() // throws RecognitionException [2]
    {
        try
        {
            int _type = AT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:127:4: ( '@' )
            // /Users/marcel/FixtureVS.g:127:6: '@'
            {
                Match('@'); if (state.failed) return;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "AT"

    // $ANTLR start "HEX_VALUE"
    public void mHEX_VALUE() // throws RecognitionException [2]
    {
        try
        {
            int _type = HEX_VALUE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:130:2: ( HEX_PREFIX ( DIGIT )* )
            // /Users/marcel/FixtureVS.g:130:4: HEX_PREFIX ( DIGIT )*
            {
                mHEX_PREFIX(); if (state.failed) return;
                // /Users/marcel/FixtureVS.g:130:15: ( DIGIT )*
                do
                {
                    int alt18 = 2;
                    int LA18_0 = input.LA(1);

                    if (((LA18_0 >= '0' && LA18_0 <= '9')))
                    {
                        alt18 = 1;
                    }


                    switch (alt18)
                    {
                        case 1:
                            // /Users/marcel/FixtureVS.g:130:15: DIGIT
                            {
                                mDIGIT(); if (state.failed) return;

                            }
                            break;

                        default:
                            goto loop18;
                    }
                } while (true);

            loop18:
                ;	// Stops C# compiler whining that label 'loop18' has no statements


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "HEX_VALUE"

    // $ANTLR start "COLON"
    public void mCOLON() // throws RecognitionException [2]
    {
        try
        {
            int _type = COLON;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:132:7: ( ':' )
            // /Users/marcel/FixtureVS.g:132:9: ':'
            {
                Match(':'); if (state.failed) return;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "COLON"

    // $ANTLR start "LBRACE"
    public void mLBRACE() // throws RecognitionException [2]
    {
        try
        {
            int _type = LBRACE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:134:9: ( '{' )
            // /Users/marcel/FixtureVS.g:134:11: '{'
            {
                Match('{'); if (state.failed) return;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "LBRACE"

    // $ANTLR start "RBRACE"
    public void mRBRACE() // throws RecognitionException [2]
    {
        try
        {
            int _type = RBRACE;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:136:9: ( '}' )
            // /Users/marcel/FixtureVS.g:136:11: '}'
            {
                Match('}'); if (state.failed) return;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "RBRACE"

    // $ANTLR start "LBRACKET"
    public void mLBRACKET() // throws RecognitionException [2]
    {
        try
        {
            int _type = LBRACKET;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:138:9: ( '[' )
            // /Users/marcel/FixtureVS.g:138:11: '['
            {
                Match('['); if (state.failed) return;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "LBRACKET"

    // $ANTLR start "RBRACKET"
    public void mRBRACKET() // throws RecognitionException [2]
    {
        try
        {
            int _type = RBRACKET;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:140:9: ( ']' )
            // /Users/marcel/FixtureVS.g:140:11: ']'
            {
                Match(']'); if (state.failed) return;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "RBRACKET"

    // $ANTLR start "EQUAL"
    public void mEQUAL() // throws RecognitionException [2]
    {
        try
        {
            int _type = EQUAL;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:142:7: ( '=' )
            // /Users/marcel/FixtureVS.g:142:9: '='
            {
                Match('='); if (state.failed) return;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "EQUAL"

    // $ANTLR start "COMMA"
    public void mCOMMA() // throws RecognitionException [2]
    {
        try
        {
            int _type = COMMA;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:144:7: ( ',' )
            // /Users/marcel/FixtureVS.g:144:9: ','
            {
                Match(','); if (state.failed) return;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "COMMA"

    // $ANTLR start "HASH"
    public void mHASH() // throws RecognitionException [2]
    {
        try
        {
            int _type = HASH;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:146:6: ( '#' )
            // /Users/marcel/FixtureVS.g:146:8: '#'
            {
                Match('#'); if (state.failed) return;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "HASH"

    // $ANTLR start "PERCENT"
    public void mPERCENT() // throws RecognitionException [2]
    {
        try
        {
            int _type = PERCENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:148:9: ( '%' )
            // /Users/marcel/FixtureVS.g:148:11: '%'
            {
                Match('%'); if (state.failed) return;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "PERCENT"

    // $ANTLR start "ANYCHAR"
    public void mANYCHAR() // throws RecognitionException [2]
    {
        try
        {
            int _type = ANYCHAR;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // /Users/marcel/FixtureVS.g:151:5: ( . )
            // /Users/marcel/FixtureVS.g:151:9: .
            {
                MatchAny(); if (state.failed) return;

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally
        {
        }
    }
    // $ANTLR end "ANYCHAR"

    // $ANTLR start "MINUS"
    public void mMINUS() // throws RecognitionException [2]
    {
        try
        {
            // /Users/marcel/FixtureVS.g:154:16: ( '-' )
            // /Users/marcel/FixtureVS.g:154:18: '-'
            {
                Match('-'); if (state.failed) return;

            }

        }
        finally
        {
        }
    }
    // $ANTLR end "MINUS"

    // $ANTLR start "HEX_PREFIX"
    public void mHEX_PREFIX() // throws RecognitionException [2]
    {
        try
        {
            // /Users/marcel/FixtureVS.g:157:2: ( '0' 'x' )
            // /Users/marcel/FixtureVS.g:157:4: '0' 'x'
            {
                Match('0'); if (state.failed) return;
                Match('x'); if (state.failed) return;

            }

        }
        finally
        {
        }
    }
    // $ANTLR end "HEX_PREFIX"

    // $ANTLR start "ESCAPE_CHAR"
    public void mESCAPE_CHAR() // throws RecognitionException [2]
    {
        try
        {
            // /Users/marcel/FixtureVS.g:160:2: ( '\\\\' )
            // /Users/marcel/FixtureVS.g:161:3: '\\\\'
            {
                Match('\\'); if (state.failed) return;

            }

        }
        finally
        {
        }
    }
    // $ANTLR end "ESCAPE_CHAR"

    // $ANTLR start "DOLLAR"
    public void mDOLLAR() // throws RecognitionException [2]
    {
        try
        {
            // /Users/marcel/FixtureVS.g:165:2: ( '$' )
            // /Users/marcel/FixtureVS.g:165:4: '$'
            {
                Match('$'); if (state.failed) return;

            }

        }
        finally
        {
        }
    }
    // $ANTLR end "DOLLAR"

    // $ANTLR start "LETTER"
    public void mLETTER() // throws RecognitionException [2]
    {
        try
        {
            // /Users/marcel/FixtureVS.g:168:2: ( ( 'a' .. 'z' | 'A' .. 'Z' ) )
            // /Users/marcel/FixtureVS.g:168:5: ( 'a' .. 'z' | 'A' .. 'Z' )
            {
                if ((input.LA(1) >= 'A' && input.LA(1) <= 'Z') || (input.LA(1) >= 'a' && input.LA(1) <= 'z'))
                {
                    input.Consume();
                    state.failed = false;
                }
                else
                {
                    if (state.backtracking > 0) { state.failed = true; return; }
                    MismatchedSetException mse = new MismatchedSetException(null, input);
                    Recover(mse);
                    throw mse;
                }


            }

        }
        finally
        {
        }
    }
    // $ANTLR end "LETTER"

    // $ANTLR start "DIGIT"
    public void mDIGIT() // throws RecognitionException [2]
    {
        try
        {
            // /Users/marcel/FixtureVS.g:171:2: ( '0' .. '9' )
            // /Users/marcel/FixtureVS.g:171:4: '0' .. '9'
            {
                MatchRange('0', '9'); if (state.failed) return;

            }

        }
        finally
        {
        }
    }
    // $ANTLR end "DIGIT"

    // $ANTLR start "SYMBOL"
    public void mSYMBOL() // throws RecognitionException [2]
    {
        try
        {
            // /Users/marcel/FixtureVS.g:174:2: ( '_' )
            // /Users/marcel/FixtureVS.g:174:4: '_'
            {
                Match('_'); if (state.failed) return;

            }

        }
        finally
        {
        }
    }
    // $ANTLR end "SYMBOL"

    override public void mTokens() // throws RecognitionException 
    {
        // /Users/marcel/FixtureVS.g:1:8: ( REFERENCE | IDENT | WHITESPACE | NEWLINE | COMMENT | END_BLOCK_COMMENT | STRING | STRING2 | INTEGER | DECIMAL | DATE | AT | HEX_VALUE | COLON | LBRACE | RBRACE | LBRACKET | RBRACKET | EQUAL | COMMA | HASH | PERCENT | ANYCHAR )
        int alt19 = 23;
        alt19 = dfa19.Predict(input);
        switch (alt19)
        {
            case 1:
                // /Users/marcel/FixtureVS.g:1:10: REFERENCE
                {
                    mREFERENCE(); if (state.failed) return;

                }
                break;
            case 2:
                // /Users/marcel/FixtureVS.g:1:20: IDENT
                {
                    mIDENT(); if (state.failed) return;

                }
                break;
            case 3:
                // /Users/marcel/FixtureVS.g:1:26: WHITESPACE
                {
                    mWHITESPACE(); if (state.failed) return;

                }
                break;
            case 4:
                // /Users/marcel/FixtureVS.g:1:37: NEWLINE
                {
                    mNEWLINE(); if (state.failed) return;

                }
                break;
            case 5:
                // /Users/marcel/FixtureVS.g:1:45: COMMENT
                {
                    mCOMMENT(); if (state.failed) return;

                }
                break;
            case 6:
                // /Users/marcel/FixtureVS.g:1:53: END_BLOCK_COMMENT
                {
                    mEND_BLOCK_COMMENT(); if (state.failed) return;

                }
                break;
            case 7:
                // /Users/marcel/FixtureVS.g:1:71: STRING
                {
                    mSTRING(); if (state.failed) return;

                }
                break;
            case 8:
                // /Users/marcel/FixtureVS.g:1:78: STRING2
                {
                    mSTRING2(); if (state.failed) return;

                }
                break;
            case 9:
                // /Users/marcel/FixtureVS.g:1:86: INTEGER
                {
                    mINTEGER(); if (state.failed) return;

                }
                break;
            case 10:
                // /Users/marcel/FixtureVS.g:1:94: DECIMAL
                {
                    mDECIMAL(); if (state.failed) return;

                }
                break;
            case 11:
                // /Users/marcel/FixtureVS.g:1:102: DATE
                {
                    mDATE(); if (state.failed) return;

                }
                break;
            case 12:
                // /Users/marcel/FixtureVS.g:1:107: AT
                {
                    mAT(); if (state.failed) return;

                }
                break;
            case 13:
                // /Users/marcel/FixtureVS.g:1:110: HEX_VALUE
                {
                    mHEX_VALUE(); if (state.failed) return;

                }
                break;
            case 14:
                // /Users/marcel/FixtureVS.g:1:120: COLON
                {
                    mCOLON(); if (state.failed) return;

                }
                break;
            case 15:
                // /Users/marcel/FixtureVS.g:1:126: LBRACE
                {
                    mLBRACE(); if (state.failed) return;

                }
                break;
            case 16:
                // /Users/marcel/FixtureVS.g:1:133: RBRACE
                {
                    mRBRACE(); if (state.failed) return;

                }
                break;
            case 17:
                // /Users/marcel/FixtureVS.g:1:140: LBRACKET
                {
                    mLBRACKET(); if (state.failed) return;

                }
                break;
            case 18:
                // /Users/marcel/FixtureVS.g:1:149: RBRACKET
                {
                    mRBRACKET(); if (state.failed) return;

                }
                break;
            case 19:
                // /Users/marcel/FixtureVS.g:1:158: EQUAL
                {
                    mEQUAL(); if (state.failed) return;

                }
                break;
            case 20:
                // /Users/marcel/FixtureVS.g:1:164: COMMA
                {
                    mCOMMA(); if (state.failed) return;

                }
                break;
            case 21:
                // /Users/marcel/FixtureVS.g:1:170: HASH
                {
                    mHASH(); if (state.failed) return;

                }
                break;
            case 22:
                // /Users/marcel/FixtureVS.g:1:175: PERCENT
                {
                    mPERCENT(); if (state.failed) return;

                }
                break;
            case 23:
                // /Users/marcel/FixtureVS.g:1:183: ANYCHAR
                {
                    mANYCHAR(); if (state.failed) return;

                }
                break;

        }

    }

    // $ANTLR start "synpred1_FixtureVS"
    public void synpred1_FixtureVS_fragment()
    {
        // /Users/marcel/FixtureVS.g:90:7: ( '*' ~ '/' )
        // /Users/marcel/FixtureVS.g:90:8: '*' ~ '/'
        {
            Match('*'); if (state.failed) return;
            if ((input.LA(1) >= '\u0000' && input.LA(1) <= '.') || (input.LA(1) >= '0' && input.LA(1) <= '\uFFFF'))
            {
                input.Consume();
                state.failed = false;
            }
            else
            {
                if (state.backtracking > 0) { state.failed = true; return; }
                MismatchedSetException mse = new MismatchedSetException(null, input);
                Recover(mse);
                throw mse;
            }


        }
    }
    // $ANTLR end "synpred1_FixtureVS"

    // $ANTLR start "synpred2_FixtureVS"
    public void synpred2_FixtureVS_fragment()
    {
        // /Users/marcel/FixtureVS.g:103:4: ( '\\\\' ~ '\"' )
        // /Users/marcel/FixtureVS.g:103:5: '\\\\' ~ '\"'
        {
            Match('\\'); if (state.failed) return;
            if ((input.LA(1) >= '\u0000' && input.LA(1) <= '!') || (input.LA(1) >= '#' && input.LA(1) <= '\uFFFF'))
            {
                input.Consume();
                state.failed = false;
            }
            else
            {
                if (state.backtracking > 0) { state.failed = true; return; }
                MismatchedSetException mse = new MismatchedSetException(null, input);
                Recover(mse);
                throw mse;
            }


        }
    }
    // $ANTLR end "synpred2_FixtureVS"

    // $ANTLR start "synpred3_FixtureVS"
    public void synpred3_FixtureVS_fragment()
    {
        // /Users/marcel/FixtureVS.g:113:3: ( '\\\\' ~ '}' )
        // /Users/marcel/FixtureVS.g:113:4: '\\\\' ~ '}'
        {
            Match('\\'); if (state.failed) return;
            if ((input.LA(1) >= '\u0000' && input.LA(1) <= '|') || (input.LA(1) >= '~' && input.LA(1) <= '\uFFFF'))
            {
                input.Consume();
                state.failed = false;
            }
            else
            {
                if (state.backtracking > 0) { state.failed = true; return; }
                MismatchedSetException mse = new MismatchedSetException(null, input);
                Recover(mse);
                throw mse;
            }


        }
    }
    // $ANTLR end "synpred3_FixtureVS"

    public bool synpred3_FixtureVS()
    {
        state.backtracking++;
        int start = input.Mark();
        try
        {
            synpred3_FixtureVS_fragment(); // can never throw exception
        }
        catch (RecognitionException re)
        {
            Console.Error.WriteLine("impossible: " + re);
        }
        bool success = !state.failed;
        input.Rewind(start);
        state.backtracking--;
        state.failed = false;
        return success;
    }
    public bool synpred1_FixtureVS()
    {
        state.backtracking++;
        int start = input.Mark();
        try
        {
            synpred1_FixtureVS_fragment(); // can never throw exception
        }
        catch (RecognitionException re)
        {
            Console.Error.WriteLine("impossible: " + re);
        }
        bool success = !state.failed;
        input.Rewind(start);
        state.backtracking--;
        state.failed = false;
        return success;
    }
    public bool synpred2_FixtureVS()
    {
        state.backtracking++;
        int start = input.Mark();
        try
        {
            synpred2_FixtureVS_fragment(); // can never throw exception
        }
        catch (RecognitionException re)
        {
            Console.Error.WriteLine("impossible: " + re);
        }
        bool success = !state.failed;
        input.Rewind(start);
        state.backtracking--;
        state.failed = false;
        return success;
    }


    protected DFA19 dfa19;
    private void InitializeCyclicDFAs()
    {
        this.dfa19 = new DFA19(this);
        this.dfa19.specialStateTransitionHandler = new DFA.SpecialStateTransitionHandler(DFA19_SpecialStateTransition);
    }

    const string DFA19_eotS =
        "\x01\x0c\x01\x18\x02\uffff\x01\x18\x01\uffff\x03\x18\x01\x20\x02" +
        "\x0c\x02\uffff\x01\x0c\x13\uffff\x01\x0c\x02\uffff\x01\x0c\x09\uffff" +
        "\x02\x0c\x01\uffff";
    const string DFA19_eofS =
        "\x32\uffff";
    const string DFA19_minS =
        "\x01\x00\x01\x41\x02\uffff\x01\x0a\x01\uffff\x01\x2a\x01\x2f\x01" +
        "\x00\x01\x7b\x02\x2e\x02\uffff\x01\x2e\x13\uffff\x01\x2e\x02\uffff" +
        "\x01\x2e\x09\uffff\x02\x2e\x01\uffff";
    const string DFA19_maxS =
        "\x01\uffff\x01\x7a\x02\uffff\x01\x0a\x01\uffff\x01\x2a\x01\x2f\x01" +
        "\uffff\x01\x7b\x01\x39\x01\x78\x02\uffff\x01\x39\x13\uffff\x01\x39" +
        "\x02\uffff\x01\x39\x09\uffff\x02\x39\x01\uffff";
    const string DFA19_acceptS =
        "\x02\uffff\x01\x02\x01\x03\x01\uffff\x01\x04\x06\uffff\x01\x09\x01" +
        "\x0a\x01\uffff\x01\x0e\x01\x0f\x01\x10\x01\x11\x01\x12\x01\x13\x01" +
        "\x14\x01\x15\x01\x16\x01\x17\x01\x01\x01\x02\x01\x03\x01\x04\x01" +
        "\x05\x01\x06\x01\x07\x01\x0c\x01\x08\x01\uffff\x01\x0a\x01\x0d\x01" +
        "\uffff\x01\x0e\x01\x0f\x01\x10\x01\x11\x01\x12\x01\x13\x01\x14\x01" +
        "\x15\x01\x16\x02\uffff\x01\x0b";
    const string DFA19_specialS =
        "\x01\x00\x07\uffff\x01\x01\x29\uffff}>";
    static readonly string[] DFA19_transitionS = {
            "\x09\x18\x01\x03\x01\x05\x01\x18\x01\x03\x01\x04\x12\x18\x01"+
            "\x03\x01\x18\x01\x08\x01\x16\x01\x01\x01\x17\x04\x18\x01\x07"+
            "\x01\x18\x01\x15\x01\x0a\x01\x0d\x01\x06\x01\x0b\x09\x0e\x01"+
            "\x0f\x02\x18\x01\x14\x02\x18\x01\x09\x1a\x02\x01\x12\x01\x18"+
            "\x01\x13\x01\x18\x01\x02\x01\x18\x1a\x02\x01\x10\x01\x18\x01"+
            "\x11\uff82\x18",
            "\x1a\x19\x04\uffff\x01\x19\x01\uffff\x1a\x19",
            "",
            "",
            "\x01\x1c",
            "",
            "\x01\x1d",
            "\x01\x1e",
            "\x0a\x1f\x01\uffff\ufff5\x1f",
            "\x01\x21",
            "\x01\x23\x01\uffff\x0a\x22",
            "\x01\x23\x01\uffff\x0a\x25\x3e\uffff\x01\x24",
            "",
            "",
            "\x01\x23\x01\uffff\x0a\x25",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\x01\x23\x01\uffff\x0a\x22",
            "",
            "",
            "\x01\x23\x01\uffff\x0a\x2f",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\x01\x23\x01\uffff\x0a\x30",
            "\x01\x23\x01\x31\x0a\x22",
            ""
    };

    static readonly short[] DFA19_eot = DFA.UnpackEncodedString(DFA19_eotS);
    static readonly short[] DFA19_eof = DFA.UnpackEncodedString(DFA19_eofS);
    static readonly char[] DFA19_min = DFA.UnpackEncodedStringToUnsignedChars(DFA19_minS);
    static readonly char[] DFA19_max = DFA.UnpackEncodedStringToUnsignedChars(DFA19_maxS);
    static readonly short[] DFA19_accept = DFA.UnpackEncodedString(DFA19_acceptS);
    static readonly short[] DFA19_special = DFA.UnpackEncodedString(DFA19_specialS);
    static readonly short[][] DFA19_transition = DFA.UnpackEncodedStringArray(DFA19_transitionS);

    protected class DFA19 : DFA
    {
        public DFA19(BaseRecognizer recognizer)
        {
            this.recognizer = recognizer;
            this.decisionNumber = 19;
            this.eot = DFA19_eot;
            this.eof = DFA19_eof;
            this.min = DFA19_min;
            this.max = DFA19_max;
            this.accept = DFA19_accept;
            this.special = DFA19_special;
            this.transition = DFA19_transition;

        }

        override public string Description
        {
            get { return "1:1: Tokens : ( REFERENCE | IDENT | WHITESPACE | NEWLINE | COMMENT | END_BLOCK_COMMENT | STRING | STRING2 | INTEGER | DECIMAL | DATE | AT | HEX_VALUE | COLON | LBRACE | RBRACE | LBRACKET | RBRACKET | EQUAL | COMMA | HASH | PERCENT | ANYCHAR );"; }
        }

    }


    protected internal int DFA19_SpecialStateTransition(DFA dfa, int s, IIntStream _input) //throws NoViableAltException
    {
        IIntStream input = _input;
        int _s = s;
        switch (s)
        {
            case 0:
                int LA19_0 = input.LA(1);

                s = -1;
                if ((LA19_0 == '$')) { s = 1; }

                else if (((LA19_0 >= 'A' && LA19_0 <= 'Z') || LA19_0 == '_' || (LA19_0 >= 'a' && LA19_0 <= 'z'))) { s = 2; }

                else if ((LA19_0 == '\t' || LA19_0 == '\f' || LA19_0 == ' ')) { s = 3; }

                else if ((LA19_0 == '\r')) { s = 4; }

                else if ((LA19_0 == '\n')) { s = 5; }

                else if ((LA19_0 == '/')) { s = 6; }

                else if ((LA19_0 == '*')) { s = 7; }

                else if ((LA19_0 == '\"')) { s = 8; }

                else if ((LA19_0 == '@')) { s = 9; }

                else if ((LA19_0 == '-')) { s = 10; }

                else if ((LA19_0 == '0')) { s = 11; }

                else if ((LA19_0 == '.')) { s = 13; }

                else if (((LA19_0 >= '1' && LA19_0 <= '9'))) { s = 14; }

                else if ((LA19_0 == ':')) { s = 15; }

                else if ((LA19_0 == '{')) { s = 16; }

                else if ((LA19_0 == '}')) { s = 17; }

                else if ((LA19_0 == '[')) { s = 18; }

                else if ((LA19_0 == ']')) { s = 19; }

                else if ((LA19_0 == '=')) { s = 20; }

                else if ((LA19_0 == ',')) { s = 21; }

                else if ((LA19_0 == '#')) { s = 22; }

                else if ((LA19_0 == '%')) { s = 23; }

                else if (((LA19_0 >= '\u0000' && LA19_0 <= '\b') || LA19_0 == '\u000B' || (LA19_0 >= '\u000E' && LA19_0 <= '\u001F') || LA19_0 == '!' || (LA19_0 >= '&' && LA19_0 <= ')') || LA19_0 == '+' || (LA19_0 >= ';' && LA19_0 <= '<') || (LA19_0 >= '>' && LA19_0 <= '?') || LA19_0 == '\\' || LA19_0 == '^' || LA19_0 == '`' || LA19_0 == '|' || (LA19_0 >= '~' && LA19_0 <= '\uFFFF'))) { s = 24; }

                else s = 12;

                if (s >= 0) return s;
                break;
            case 1:
                int LA19_8 = input.LA(1);

                s = -1;
                if (((LA19_8 >= '\u0000' && LA19_8 <= '\t') || (LA19_8 >= '\u000B' && LA19_8 <= '\uFFFF'))) { s = 31; }

                else s = 24;

                if (s >= 0) return s;
                break;
        }
        if (state.backtracking > 0) { state.failed = true; return -1; }
        NoViableAltException nvae19 =
            new NoViableAltException(dfa.Description, 19, _s, input);
        dfa.Error(nvae19);
        throw nvae19;
    }


}
